Skip to content

hibahmad30/AzureOktaFederation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 

Repository files navigation

Implementing Federation Between Azure and Okta

Description

Microsoft Entra ID and Okta are two leading identity management platforms renowned for their ability to handle complex authentication needs. By implementing federation between Entra ID and Okta, organizations can streamline authentication processes, enhance security, and improve user experience. This project aims to integrate these systems to create a unified access management framework that supports Single Sign-On (SSO) and centralized control over user identities and permissions. Here is a high-level architecture diagram that displays the configuration for this project:

Architecture Diagram

Environments Used

  • Security Assertion Markup Language (SAML)
  • Okta
  • Microsoft Entra ID

Making Microsoft Entra ID an Identity Provider

To begin, we will configure Entra ID as the identity provider responsible for authentication. Before proceeding, it is crucial to set up a break-glass account. This account will serve as a backup in emergencies. For more details on the importance of break-glass accounts and access, please refer to the following link: https://www.strongdm.com/blog/break-glass

Here are the steps in Okta to configure this account: Directory > People > Add person

Add Okta User

We will then add the new user to the 'Super Administrator' role: User > Admin roles > Edit individual assignments > Role > Super Administrator > Save Changes

Super Administrator Role

We will now proceed with adding Entra ID as an identity provider, following the steps outlined in the following Okta documentation:

https://help.okta.com/en-us/content/topics/provisioning/azure/azure-identify-identity-provider.htm

Navigate to the following path: Security > Identity Providers > Add identity provider > SAML 2.0 IdP

Add IdP

We will now configure SAML 2.0 using the following settings:

Select an IdP

Configure IdP

Ensure to record the following values, as they will be necessary for the next steps: 'Assertion Consumer Service URL' and 'Audience URI'.

Creating the Okta Enterprise App in Microsoft Entra ID

We will now create an Okta enterprise app in Entra ID, facilitating communication between Azure and Okta. For guidance, I will refer to the following Okta documentation:

https://help.okta.com/en-us/content/topics/provisioning/azure/azure-create-enterprise-app.htm

Begin by navigating to the Azure portal and to the following location: Microsoft Entra ID > Enterprise applications > New application > Create your own application.

Create Application

Configure Application

Once application has been created, navigate to 'Set up single sign on' and 'SAML':

Set up SSO

SAML Configuration

In the ‘Basic SAML Configuration’ section, enter placeholder URLs for ‘Identifier’ and ‘Reply URL’, and proceed to save the configuration. Select 'Download for Certificate (Base64)' in the SAML Signing Certificate area to download the certificate to your computer, which will be required for the next steps.

Mapping Microsoft Entra ID Attributes to Okta Attributes

SAML claims are pieces of information about a user that are shared between different systems to help with logging in and accessing services, such as their name or email address. We will be editing our attributes and claims, which is essentially what information we want to send to Okta for authentication.

Attributes and Claims

In addition to the default claims, we will add 'company name' and 'telephone number':

Additional Claims

Return back to Okta, and navigate to SAML Certifications > Edit > New Certificate. Enter the following values to update the placeholders: the 'IdP Issuer URI' is the 'Microsoft Entra Identifier', the 'IdP Single Sign-On URL' is the 'Login URL', and the 'IdP Signature Certificate' is the 'Base64 download'.

SAML Certificate

SAML Values

Be sure to make note of the values above. The 'Assertion Consumer Service URL' will be the 'Reply URL in Azure', and the 'Audience URI' will be the 'Identity Entity ID' in Azure.

In Entra ID, update the placeholder values:

SAML Configuration Update

Back in Okta, navigate to: Edit profile and mappings > Mappings. We will then unmap all attributes except 'username'.

Unmap Attributes

We will then navigate to 'Custom', and proceed to delete and recreate the attributes. For the attribute mapping, I will be referencing the following Okta documentation: https://help.okta.com/en-us/content/topics/provisioning/azure/azure-map-attributes.htm. Once the attributes are created, we will proceed with updating the mappings:

Create Mappings

Mapping Attributes

We will test the authentication by first navigating to our Okta application in Entra ID and assigning users to the application: Manage > users and groups > Add user/group

Assign Users

We are now ready to test the authentication! Navigate to Single sign-on > Test.

Test the SSO

SSO Login

For advanced testing and troubleshooting, you may optionally download the 'My Apps Secure Sign-in Extension' Chrome extension. As demonstrated below, we successfully authenticated!

Successful SSO

Key takeaways:

This project focuses on integrating federation between Microsoft Entra ID and Okta to create a seamless and secure authentication experience across hybrid environments. Federation in this context means connecting these systems so that users can log in once and gain seamless access to resources managed by either platform. This integration simplifies the authentication process, enhances security, and improves user experience across hybrid IT environments. The process begins with the essential step of setting up a "break-glass" account in Entra ID, an emergency backup to ensure continuous access even if primary authentication methods fail. Entra ID is then configured to act as the primary identity provider for Okta by utilizing the SAML 2.0 protocol.

This involves establishing a secure communication link between Azure and Okta through the creation of an Okta enterprise application in Entra ID. The integration involves the setup of SAML claims, which define and map user attributes such as name, email, company name, and telephone number. These claims are fundamental in identifying and authenticating users across both systems. The final step in the implementation is thorough testing and validation to confirm that users can successfully log in to Okta applications using their Entra ID credentials.

Implementing federation between Azure and Okta offers significant benefits such as enhancing user experience by enabling Single Sign-On (SSO), allowing users to log in once and access multiple systems without repeated authentication. This streamlines the process and reduces the frustration of managing multiple passwords. From an administrative perspective, federation simplifies centralized management of user identities and access rights, reducing the overhead for IT teams.

Federation is particularly valuable in several use cases such as for organizations operating in hybrid environments, where a mix of on-premises and cloud-based resources needs unified access management. It also facilitates secure cross-organizational collaboration, allowing external partners to access shared resources using their own identity systems. As companies expand their IT infrastructure, federation supports scalable identity solutions by seamlessly integrating multiple identity providers.

Additionally, it aids in regulatory compliance by offering a centralized, auditable log of user access across all systems. Key terms like federation, SAML, identity provider, attributes and claims, and break-glass accounts play crucial roles in understanding this project. By combining the strengths of Microsoft Entra ID and Okta through federation, this project creates a unified and efficient identity management solution that simplifies and secures user access to diverse systems.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published